/** @format */

import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
import Unocss from 'unocss/vite';
import path from 'path';
import { copy } from 'vite-plugin-copy';
import copyChangedFiles from './copy-files-plugin';
import postcsspxtoviewport from 'postcss-px-to-viewport';

function pathResolve() {
 return path.resolve(__dirname, './');
}
function copyWxCloudfunctions(dir) {
 return {
  src: path.join(__dirname, 'src/', dir),
  dest: path.join(__dirname, 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM),
 };
}
// https://vitejs.dev/config/
export default defineConfig({
 plugins: [
  uni.default(),
  Unocss(),
  //   copy([
  //    copyWxCloudfunctions('wxcloudfunctions'), // 将 public/assets 复制到 dist/assets
  //   ]),
  //   copyChangedFiles(),
 ],
 resolve: {
  alias: {
   '@': pathResolve('./src'),
  },
  extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
 },
 css: {
  postcss: {
   plugins: [
    postcsspxtoviewport({
     unitToConvert: 'px', // 要转化的单位
     viewportWidth: 49, // UI设计稿的宽度,转换除以100
     unitPrecision: 6, // 转换后的精度，即小数点位数
     propList: ['*'], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
     viewportUnit: 'rpx', // 指定需要转换成的视窗单位，默认vw
     fontViewportUnit: 'rpx', // 指定字体需要转换成的视窗单位，默认vw
     selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名，
     minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
     mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
     replace: true, // 是否转换后直接更换属性值
     // exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配
     exclude: [],
     landscape: false, // 是否处理横屏情况
    }),
   ],
  },
 },
});
